// Mongoose的一切都始于一个Schema。每个schema映射到MongoDB的集合(collection)和定义该集合(collection)中的文档的形式
const mongoose = require('mongoose')

const schema = new mongoose.Schema({
    name:{type : String},

    parent:{type:mongoose.SchemaTypes.ObjectId,ref:'Category'}
})
// 3.13 设置虚拟字段：子分类,类似vue中的计算属性，它是通过已定义的schema属性的计算\组合\拼接得到的新的值
schema.virtual('children', {
    localField: '_id', // 内键,schema对应的模型Title的_id
    foreignField: 'parent', //外键,关联模型Category的parent键
    justOne: false, // 只查询一条数据
    ref: 'Category' // 关联的模型
})

// 3.13 分类关联新闻标题
schema.virtual('newsList', {
    localField: '_id', // 内键,schema对应的模型Category的_id
    foreignField: 'categories', //外键,关联模型Article的categories键
    justOne: false, // 只查询一条数据
    ref: 'Article' // 关联的模型
}) 
module.exports = mongoose.model('Category',schema)